package org.lemon.cla.dto.request;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

@Data
@Schema(description = "社团活动模糊查询请求对象")
public class ClubActivitySearchRequest {

    @Schema(description = "所属社团ID (精确匹配)", example = "1")
    private Long clubId;

    @Schema(description = "活动名称关键词 (模糊查询)", example = "编程")
    private String activityName;

    @Schema(description = "活动内容关键词 (模糊查询)", example = "比赛")
    private String content;

    @Schema(description = "地点关键词 (模糊查询)", example = "教学楼")
    private String location;

    @Schema(description = "报名开始时间起始点", example = "2024-07-01T00:00:00")
    private LocalDateTime signupStartAfter;

    @Schema(description = "报名开始时间结束点", example = "2024-07-31T23:59:59")
    private LocalDateTime signupStartBefore;

    @Schema(description = "报名结束时间起始点", example = "2024-07-01T00:00:00")
    private LocalDateTime signupEndAfter;

    @Schema(description = "报名结束时间结束点", example = "2024-07-31T23:59:59")
    private LocalDateTime signupEndBefore;

    @Schema(description = "活动开始时间起始点", example = "2024-07-01T00:00:00")
    private LocalDateTime startTimeAfter;

    @Schema(description = "活动开始时间结束点", example = "2024-07-31T23:59:59")
    private LocalDateTime startTimeBefore;

    @Schema(description = "活动结束时间起始点", example = "2024-07-01T00:00:00")
    private LocalDateTime endTimeAfter;

    @Schema(description = "活动结束时间结束点", example = "2024-07-31T23:59:59")
    private LocalDateTime endTimeBefore;

    @Schema(description = "组织者ID (精确匹配)", example = "102")
    private Long organizerId;

    @Schema(description = "参与人数最小值", example = "10")
    private Integer participantCountMin;

    @Schema(description = "参与人数最大值", example = "100")
    private Integer participantCountMax;
}